package com.vincent.dao.basic;

import java.io.Serializable;
import java.util.List;

/**
 * 基础接口
 * 
 * @author Vincent
 * 
 */
public interface IBasicDAO<T> {
	/**
	 * 简单查询语句 不带参数
	 * 
	 * @param hql
	 * @return
	 */
	public List<T> executeQuery(String hql);

	/**
	 * 简单查询语句 带参数
	 * 
	 * @param hql
	 * @param parameters
	 * @return
	 */
	public List<T> executeQuery(String hql, Object[] parameters);
	/**
	 * 简单查询  获取对象 无参数
	 * @param hql
	 * @return
	 */
	public Object executeQueryUniqueResult(String hql);
	/**
	 * 简单查询 获取对象  有参数
	 * @param hql
	 * @param parameters
	 * @return
	 */
	public Object executeQueryUniqueResult(String hql, Object[] parameters);

	/**
	 * 根据id获取对象
	 * 
	 * @param id
	 * @return
	 */
	public T getObjectById(java.io.Serializable id);

	/**
	 * 保存对象
	 * 
	 * @param t
	 * @return
	 */
	public Serializable savObject(T t);

	/**
	 * 删除对象
	 * 
	 * @param t
	 */
	public void delObject(T t);

}
